#ifndef __HALCFG_H__
#define __HALCFG_H__

#define _HAL_LINUX_     1
#define _HAL_STM32_     2

typedef enum _hal_module_id
{
    HW_GPIO = 1001,
    HW_UART,
    HW_ADC,
    HW_CAN,
    HW_FLASH,
    HW_I2C,
    HW_RTC,
    HW_SPI,
    HW_TMR,
    HW_WDG,
    MOD_HAL_MAX,
} hwModId_t;

#define HAL_PRODUCER    _HAL_STM32_

// GPIO
#define HAL_GPIO        _ENABLE
typedef enum _gpio_index
{
    GPIO_INDEX_0 = 0,
    GPIO_INDEX_1,
    GPIO_INDEX_2,
    GPIO_INDEX_3,
    GPIO_INDEX_4,
    GPIO_INDEX_5,
    GPIO_INDEX_MAX,
} GPIO_INDEX_E;
#define HAL_GPIO_IN_LIST    \
{   \
}
#define HAL_GPIO_OUT_LIST   \
{   \
}


// UART
#define HAL_UART        _ENABLE
typedef enum _hal_uart_idx
{
    HAL_UART0 = 0,
    HAL_UART1,
    HAL_UART2,
    HAL_UART_NUM,
} HAL_UART_IDX_E;
#define HAL_UART_NAMES  \
{\
}


// ADC
#define HAL_ADC         _DISABLE

// CAN
#define HAL_CAN         _ENABLE
typedef enum _hal_can_idx
{
    HAL_CAN0 = 0,
    HAL_CAN1,
    HAL_CAN_NUM,
} HAL_CAN_IDX_E;
#define HAL_CAN_NAMES   \
{ \
    "can0", \
    "can1", \
}

// FLASH
#define HAL_FLASH       _DISABLE

// I2C
#define HAL_I2C         _DISABLE

// RTC
#define HAL_RTC         _DISABLE

// SPI
#define HAL_SPI         _DISABLE

// TIMER
#define HAL_TMR         _DISABLE

// WATCH DOG
#define HAL_WDG         _DISABLE

#endif  // __HALCFG_H__

